home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 2003 September / PC Answers September 2003.iso / Software / freeware / pixeltoolbox / Setup.exe / Main / PixelToolbox.exe / PixelToolbox.dxr / Scripts_85_editable text behavior.ls < prev    next >
Encoding:
Text File  |  2002-06-08  |  2.6 KB  |  78 lines

  1. property pAllowedChars, pUpperLimit, pLowerLimit, pSliderNum, pUniqueCommand, pGroupList, pSpriteLeft
  2.  
  3. on mouseUp me
  4.   sprite(me.spriteNum).editable = 1
  5.   hilite sprite(me.spriteNum).member.word[1]
  6.   repeat with i in pGroupList
  7.     if i <> me.spriteNum then
  8.       sprite(i).editable = 0
  9.     end if
  10.   end repeat
  11. end
  12.  
  13. on keyDown me
  14.   if the key = RETURN then
  15.     sprite(me.spriteNum).editable = 0
  16.     stopEvent()
  17.   else
  18.     if the key = BACKSPACE then
  19.       pass()
  20.     else
  21.       if pAllowedChars contains the key then
  22.         if sprite(me.spriteNum).member.text.length = 3 then
  23.           if the selection <> EMPTY then
  24.             pass()
  25.           else
  26.             sprite(me.spriteNum).editable = 0
  27.             pass()
  28.           end if
  29.         else
  30.           pass()
  31.         end if
  32.       else
  33.         sprite(me.spriteNum).editable = 0
  34.         pass()
  35.       end if
  36.     end if
  37.   end if
  38. end
  39.  
  40. on keyUp me
  41.   cleanField(me)
  42. end
  43.  
  44. on cleanField me
  45.   if sprite(me.spriteNum).member.text = EMPTY then
  46.     sprite(me.spriteNum).member.text = "0"
  47.   else
  48.     if integer(sprite(me.spriteNum).member.text) > pUpperLimit then
  49.       sprite(me.spriteNum).member.text = string(pUpperLimit)
  50.     else
  51.       if integer(sprite(me.spriteNum).member.text) < pLowerLimit then
  52.         sprite(me.spriteNum).member.text = string(pLowerLimit)
  53.       else
  54.         if (sprite(me.spriteNum).member.char[1] = "0") and (sprite(me.spriteNum).member.text.length > 1) then
  55.           sprite(me.spriteNum).member.text = "0"
  56.         else
  57.           if (sprite(me.spriteNum).member.char[1] = "-") and (sprite(me.spriteNum).member.char[2] = "0") then
  58.             sprite(me.spriteNum).member.text = "0"
  59.           end if
  60.         end if
  61.       end if
  62.     end if
  63.   end if
  64.   sendSprite(pSliderNum, pUniqueCommand, integer(integer(sprite(me.spriteNum).member.text) / 255.0 * 100) + pSpriteLeft)
  65. end
  66.  
  67. on getPropertyDescriptionList me
  68.   list = [:]
  69.   addProp(list, #pAllowedChars, [#comment: "Characters Allowed:", #format: #string, #default: "1234567890"])
  70.   addProp(list, #pUpperLimit, [#comment: "Upper Limit:", #format: #integer, #default: 255])
  71.   addProp(list, #pLowerLimit, [#comment: "Lower Limit:", #format: #integer, #default: 0])
  72.   addProp(list, #pSliderNum, [#comment: "Sprite number of slider:", #format: #integer, #default: 10])
  73.   addProp(list, #pUniqueCommand, [#comment: "Handler to invoke:", #format: #symbol, #default: #eatMyShorts])
  74.   addProp(list, #pGroupList, [#comment: "Sprite List:", #format: #list, #default: [the currentSpriteNum]])
  75.   addProp(list, #pSpriteLeft, [#comment: "Left coordinate of guide sprite:", #format: #integer, #default: 500])
  76.   return list
  77. end
  78.